{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第二次作业：正态分布随机变量的抽取\n",
    "\n",
    "作者：李之琪  \n",
    "学号：3180103041\n",
    "\n",
    "本次作业的任务是用三种不同方式产生正态分布随机数列，并分析比较它们的抽取效率和随机数质量。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面分别给出三种方式产生正态分布随机数列的完整过程和可视化结果，通过大量随机数的直方图与标准正态分布对比来评估其产生的随机数质量，并通过time模块比较它们的抽取效率。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import print_function, division\n",
    "\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "from scipy.special import comb, perm\n",
    "from scipy import stats\n",
    "import numpy as np\n",
    "import sys\n",
    "import matplotlib.pyplot as plt\n",
    "import time"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.用拒绝接受法产生半正态分布，再变换为正态分布"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 接受－拒绝方法（Accept-Rejection Method）\n",
    "令$f(z)$，$a \\leq z \\leq b$是某分布的概率密度函数且具有分解形式\n",
    "$$\n",
    "\\begin{equation}\n",
    "    f(z) = c g(z) h(z),\n",
    "    \\label{eq::AR_frac_pdf}\n",
    "  \\end{equation}\n",
    "$$\n",
    "其中\n",
    "$$\n",
    "\\begin{equation}\n",
    "    h(z) \\geq 0, \\int_a^b h(z) dz = 1, c = \\sup_{z}\\left[\\frac{f(z)}{h(z)}\\right],\n",
    "    \\label{eq::AR_pfd_hc}\n",
    "  \\end{equation}\n",
    "$$\n",
    "并且\n",
    "$$\n",
    "\\begin{equation}\n",
    "    0 \\leq g(z) \\leq 1.\n",
    "    \\label{eq::AR_pdf_g}\n",
    "  \\end{equation}\n",
    "$$\n",
    "令 $Z$ 是 PDF 为 $h(z)$ 的随机变量，$U$ 为服从 $U(0, 1)$ 的随机变量。则满足 $U \\leq g(Z)$ 的随机变量 $Z$ 服从PDF为 $f(z)$ 的概率分布。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**标准半正态分布（half-normal distribution）** 的PDF为：\n",
    "$$\n",
    "  \\begin{equation}\n",
    "    f(z) = \\sqrt{\\frac{2}{\\pi}} e^{\\frac{-z^2}{2}}, 0 \\leq z < \\infty.\n",
    "    \\label{eq::def_half_normal}\n",
    "  \\end{equation}\n",
    "$$\n",
    "我们可以将其写作\n",
    "$$\n",
    "\\begin{equation}\n",
    "    f(z) = \\sqrt{\\frac{2e}{\\pi}} e^{\\frac{-(z - 1)^2}{2}}e^{-z},\n",
    "    \\label{eq::frac_half_normal}\n",
    "  \\end{equation}\n",
    "$$\n",
    "并令\n",
    "$$\n",
    "\\begin{equation}\n",
    "\\begin{array}{rcl}\n",
    "    h(z) &=& e^{-z}, \\\\\n",
    "    g(x) &=& e^{\\frac{-(z - 1)^2}{2}},\n",
    "\\end{array}\n",
    "  \\end{equation}\n",
    "$$\n",
    "以及\n",
    "$$\n",
    "\\begin{equation}\n",
    "    c = \\sqrt{\\frac{2e}{\\pi}} \\approx 1.3155.\n",
    "    \\label{eq::half_normal_c}\n",
    "  \\end{equation}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 下面是代码实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def AR_G(x):\n",
    "    return np.exp(-(x-1)**2/2)\n",
    "def AR_HR(x):  #h(x)的逆变换，用于生成服从h的随机变量\n",
    "    return -np.log(x)\n",
    "def AR_normal(N):\n",
    "    U=np.random.rand(N)\n",
    "    k=0  #实际接受的点数\n",
    "    X=[AR_HR(i) for i in U]  #生成服从h的随机变量X\n",
    "    G=[AR_G(x) for x in X]\n",
    "    U=np.random.rand(N)  #重新产生均匀分布\n",
    "    for i in range(N):\n",
    "        if U[i] <= G[i]:  # 在g发生的条件下接受\n",
    "            t=np.random.rand()  #将半正态化为正态的判别变量\n",
    "            if t > 0.5:\n",
    "                X[k] = X[i]   \n",
    "            else:\n",
    "                X[k] = -X[i]\n",
    "            k = k + 1  \n",
    "    return k, X"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面分别对N=1000,N=10000和N=100000的情形，用AR方法产生服从标准正态分布的随机数列，并将它们和标准正态分布的PDF对比以观察随机数质量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def AR_view(N):\n",
    "    k, X = AR_normal(N)\n",
    "    x = np.linspace(-6,6,10000)\n",
    "    plt.hist(X[0:k], bins=50,density=1, label=\"Stat\");\n",
    "    plt.plot(x,1/np.sqrt(2*np.pi)*np.exp(-x**2/2), label=r\"PDF\")\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 10000\n",
    "AR_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by AR Method,N=10000\")\n",
    "plt.savefig('AR1.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 100000\n",
    "AR_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by AR Method,N=100000\")\n",
    "plt.savefig('AR2.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 1000000\n",
    "AR_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by AR Method,N=1000000\")\n",
    "plt.savefig('AR3.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来对不同的N，调用time模块测试运行时间，并将结果可视化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X=np.arange(1000,100000,1000)\n",
    "Y=[]\n",
    "for x in X:\n",
    "    t_0=time.time()\n",
    "    AR_normal(x)\n",
    "    t=time.time()-t_0\n",
    "    Y.append(t)\n",
    "plt.plot(X,Y,'r.')   \n",
    "plt.xlabel(r\"size of Normal Distribution Samples\")\n",
    "plt.ylabel(r\"time\")\n",
    "plt.savefig('AR_time.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 用 Hasting 提供的逆映射有理逼近直接抽取"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于连续分布的采样抽取，如果存在容易计算的逆变换解析表达式 $F^{-1}(y)$，那么对于 $U(0, 1)$ 的均匀分布的随机变量 $\\eta$，直接计算 $F^{-1}(\\eta)$ 即可。也就是说，\n",
    "$$\n",
    "\\begin{equation}\n",
    "  \\xi = \\min\\left\\{x \\left|\\eta \\leq \\int_{-\\infty}^x f(t)\n",
    "  dt\\right.\\right\\} = F^{-1}(\\eta), \\eta \\sim U(0, 1),\n",
    "  \\label{eq::inv}\n",
    "\\end{equation}\n",
    "$$\n",
    "则 $\\xi \\sim f(x)$。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "虽然正态分布没有解析的逆变换形式，但在Hastings1955中，给出了一个它的有理逼近形式：\n",
    "$$\n",
    "\\begin{equation}\n",
    "  F^{-1}(y) = \\mu\n",
    "  + \\mathrm{sign}(y - \\frac{1}{2})\\sigma\\left(t\n",
    "  - \\frac{c_0 + c_1 t + c_2 t^2}{1 + d_1 t + d_2 t^2 + d_3 t^3}\\right),\n",
    "  \\label{eq::approx_normal}\n",
    "\\end{equation}\n",
    "$$\n",
    "\n",
    "其中\n",
    "\n",
    "$$\n",
    "t = \\sqrt{-\\ln\\left[\\min(y, 1 - y)\\right]^2},\n",
    "$$\n",
    "\n",
    "各参数值为\n",
    "\n",
    "$$\n",
    "\\begin{array}{c}\n",
    "  c_0 = 2.515517, c_1 = 0.802853, c_2 = 0.010328,\\\\\n",
    "  d_1 = 1.432788, d_2 = 0.189269, d_3 = 0.001308.\n",
    "\\end{array}\n",
    "$$\n",
    "\n",
    "此公式绝对误差小于$0.45 \\times 10^{-3}$。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面使用这一逆变换直接抽取正态分布随机数列，并进行统计检验。检验时，同样分N=10000，N=100000和N=1000000三种情况。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "c0=2.515517;c1=0.802853;c2=0.010328\n",
    "d1=1.432788;d2=0.189269;d3=0.001308\n",
    "def RE_FR(x):\n",
    "    t=np.sqrt(-np.log((min([x,1-x])**2)))\n",
    "    return np.sign(x-0.5)*(t-(c0+c1*t+c2*t*t)/(1+d1*t+d2*t*t+d3*(t**3)))\n",
    "def RE_normal(N):\n",
    "    U = np.random.rand(N)\n",
    "    X = [RE_FR(u) for u in U]\n",
    "    return X"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def RE_view(N):\n",
    "    X = RE_normal(N)\n",
    "    x = np.linspace(-6,6,10000)\n",
    "    plt.hist(X, bins=50,density=1, label=\"Stat\");\n",
    "    plt.plot(x,1/np.sqrt(2*np.pi)*np.exp(-x**2/2), label=r\"PDF\")\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 10000\n",
    "RE_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by Hasting1955,N=10000\")\n",
    "plt.savefig('RE1.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 100000\n",
    "RE_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by Hasting1955,N=100000\")\n",
    "plt.savefig('RE2.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 1000000\n",
    "RE_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by Hasting1955,N=1000000\")\n",
    "plt.savefig('RE3.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为了比较抽取效率，同样调用time模块测试运行时间，并将结果可视化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X=np.arange(1000,100000,1000)\n",
    "Y=[]\n",
    "for x in X:\n",
    "    t_0=time.time()\n",
    "    RE_normal(x)\n",
    "    t=time.time()-t_0\n",
    "    Y.append(t)\n",
    "plt.plot(X,Y,'r.')   \n",
    "plt.xlabel(r\"size of Normal Distribution Samples\")\n",
    "plt.ylabel(r\"time\")\n",
    "plt.savefig('RE_time.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 利用正态分布的性质进行抽取"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "假设\n",
    "$$\n",
    "\\begin{equation}\n",
    "  Z_n = \\sqrt{12/n}(X_1 + X_2 + \\cdots + X_n),\n",
    "  \\label{eq::normal_naive}\n",
    "\\end{equation}\n",
    "$$\n",
    "其中 $X_i$ 是独立的服从 $U(-\\frac{1}{2}, \\frac{1}{2})$ 的随机变量，那么显然有对 $i = 1, 2, \\cdots, n$, $E[X_i] = 0$, 且\n",
    "$$\n",
    "D[X_i] = \\int_{-\\frac{1}{2}}^{\\frac{1}{2}}x^2 dx = \\frac{1}{12}.\n",
    "$$\n",
    "故 $Z_n$ 的一、二阶矩和 $N(0, 1)$ 一致。当 $n \\to \\infty$ 时，$Z_n \\sim N(0, 1)$. 取 $n = 12$时，系数变为1，但是这时我们发现 $Z_{12}$ 实际上分布在 $(-6, 6)$ 区间而不是 $\\mathbb{R}$，这一方法的准确性相对差一些。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "类似地，对不同的规模N，产生正态分布随机数列并进行统计检验，再测试所用的时间。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def PR_normal(N):\n",
    "    U=np.random.rand(N)\n",
    "    X=[i-0.5 for i in U]\n",
    "    for k in range(1,12):\n",
    "        U=np.random.rand(N)\n",
    "        Y=[i-0.5 for i in U]\n",
    "        Z=[i+j for i,j in zip(X, Y)]\n",
    "        X=Z\n",
    "    return X    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def PR_view(N):\n",
    "    X = PR_normal(N)\n",
    "    x = np.linspace(-6,6,10000)\n",
    "    plt.hist(X, bins=50,density=1, label=\"Stat\");\n",
    "    plt.plot(x,1/np.sqrt(2*np.pi)*np.exp(-x**2/2), label=r\"PDF\")\n",
    "    plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 10000\n",
    "PR_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by property,N=10000\")\n",
    "plt.savefig('PR1.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 100000\n",
    "PR_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by property,N=100000\")\n",
    "plt.savefig('PR2.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "N = 1000000\n",
    "PR_view(N)\n",
    "plt.xlabel(r\"Normal Distribution Samples Produced by property,N=1000000\")\n",
    "plt.savefig('PR3.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X=np.arange(1000,100000,1000)\n",
    "Y=[]\n",
    "for x in X:\n",
    "    t_0=time.time()\n",
    "    PR_normal(x)\n",
    "    t=time.time()-t_0\n",
    "    Y.append(t)\n",
    "plt.plot(X,Y,'r.')   \n",
    "plt.xlabel(r\"size of Normal Distribution Samples\")\n",
    "plt.ylabel(r\"time\")\n",
    "plt.savefig('PR_time.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 下面分析比较三种方法，对比它们的抽取效率和随机数质量。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先考虑随机数质量。从上面的可视化结果不难看出，当规模N很大(100000以上)时，三种方法的抽取结果都已经和真正的正态分布十分近似，难以进行比较。因此，我们选择N较小时的情况进行比较。当N=10000时，三种方法的统计检验结果如下："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.拒绝接受法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](AR1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.逆映射有理逼近直接抽取法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](RE1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.利用正态分布性质的简单方法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](PR1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "不难看出，第二种方法，即用 Hasting 提供的逆映射有理逼近直接抽取的方法获得的随机数质量是最好的，剩下两种方法产生的正态分布随机数质量稍差。整体来说，在随机数质量方面，三种方法的对比结果是：\n",
    "### 逆映射有理逼近直接抽取法>拒绝接受法≈利用正态分布性质的简单方法\n",
    "其中，“>”表示相同规模下更加接近标准标准正态分布，即随机数质量更高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面考虑抽取效率。这里列出三种抽取方法所用的相对时间随抽取规模变化的可视化结果。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.拒绝接受法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](AR_time.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.逆映射有理逼近直接抽取法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](RE_time.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.利用正态分布性质的简单方法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![avatar](PR_time.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "显然，三者的时间复杂度都是$\\Theta(n)$的，具体地，有：\n",
    "### 拒绝接受法≈利用正态分布性质的简单方法>逆映射有理逼近直接抽取法\n",
    "其中，“>”表示相同规模下用的时间更短，即抽取效率更高。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面使用的三种方法都具有$\\Theta(n)$的时间复杂度，且当规模N较大时都能生成质量较高的正态分布随机数列。具体来说，利用逆映射有理逼近直接抽取法获得的随机数质量最好，但相应的抽取效率是相对最低的；拒绝接受法和最后一种简单的抽取方法抽取效率要高不少，但简单抽取获得的随机数在质量上偏低。在具体使用中，对于精度要求不高，工作环境较简陋的条件下，可以使用第三种简单抽取的方法；对于随机数质量有较高要求时，可以使用逆映射有理逼近的抽取法；对于随机数质量要求没有那么高，又希望提高抽取效率时，推荐使用拒绝接受法。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
